\documentclass[12pt]{article}
\usepackage{a4wide}

\parindent 0pt
\parskip 6pt

\begin{document}

\thispagestyle{empty}

\rightline{\large\emph{Matthew Thomson}}
\medskip
\rightline{\large\emph{Gonville and Caius College}}
\medskip
\rightline{\large\emph{mt521}}

\vfil

\centerline{\large Part II Project Proposal}
\vspace{0.4in}
\centerline{\Large\bf Dolphin: Networking using Sound}
\vspace{0.3in}
\centerline{\large 06/09/2012}

\vfil

{\bf Project Originator:} Matthew Thomson

\vspace{0.1in}

{\bf Resources Required:} See attached Project Resource Form

\vspace{0.5in}

{\bf Project Supervisor:} Oliver R. A. Chick

\vspace{0.2in}

{\bf Signature:}

\vspace{0.5in}

{\bf Director of Studies:}  Graham Titmus and Peter Robinson

\vspace{0.2in}

{\bf Signature:}

\vspace{0.5in}

{\bf Overseers:} Peter Robinson and Robert Watson

\vspace{0.2in}

{\bf Signatures:}

\vfil
\newpage


\section*{Introduction and Description of the Work}

Imagine a situation arises in which you need a file transferred to you, but you
have no internet access and it will take too long to physically go to the file's
location and put it on portable storage. How can you quickly and cheaply get a
copy of the file, using only a voice link to someone where the file is? The
scenario isn't unheard of, a writer may have journeyed to a far off retreat to
work without distractions and needs to send his script to the editor, or a
soldier needs an updated battleplan in the desert and a satellite connection is
unavailable, he only has his radio. I propose creating a new standard for data
transfer in the ISO physical layer wherein modulated sound waves can represent
any kind of information.

The concept would also have potential for data transference between two local
mobile devices. A mobile phone has various ways of transmitting data to another
mobile phone: e-mail via WiFi or 3G; Bluetooth; multimedia messages; moving a
portable storage card from one phone to the other; or in some older models,
infrared. These techniques can be inconvenient, costly to the user and often
power-hungry. A more recent alternative to transfer information from one mobile
device to another is using QR codes, which can be generated as needed to display
contact information, text files, web-addresses and more. However, QR codes can
only store around 4,200 alphanumeric characters or only 2,950 binary bytes,
which is not suitable for transfer of larger files.

One example of this kind of technology is \emph{SSTV} which involves encoding a
single frame as a series of modulated sound waves in voice (audible)
frequencies. SSTV is not currently integrated with modern data transfer
protocols as the only data you can transmit is an image, usually 320x240 pixels,
so it would not be advantageous to try and alter it to allow for different files
but it shows that the data transfer using sound is possible and useful.


\section*{Resources Required}

Two rooted Android mobile phones will be required for testing the mobile
application.


\section*{Starting Point}

The IB lecture course \emph{Computer Networking} contained information on the
ISO layer model, which I will be implementing for this project. The Part II
courses \emph{Digital Signal Processing} and \emph{Mobile and Sensor Systems}
also contain relevent information on transferring data wirelessly.


\section*{Substance and Structure of the Project}

The project would involve writing software to load and then interpret data
and sounds. As I will be creating low-level software in the ISO model the
software should conceivably be able to open any filetype and treat it as a
stream of bits. The analysis of files and sounds will lead to conversion between
the mediums and optimisation to condense as much of the information into as
short a sound as possible.

The core element of the project will create a new method of data transference,
essentially creating a new physical layer, handling how bits are sent and
received in audio form. The project will also have aspects of the data-link
layer as simply having the capability to send information will not be enough to
actually use the technique, a set of protocols will need to be established to
send data back and forth allowing for data collision and possibly retransmit
requests. Using ISO layers is preferable for this project as it means any data
from higher layers can be sent through this technique, including SSTV images,
TCP and UDP packets, IP packets and more.

\emph{\bf Why don't we want this paragraph?} //
\emph{Given the project will create a new implementation of the ISO layers,
additional features can be included that use the layer thanks to the interfaces
that have been established between the layers, for example the software will
offer the chance to encrypt the files sent in the presentation layer using a
password of the user's choosing, and correspondingly prompt the user to enter a
password if an encrypted sound is loaded. It will then decode the sound based on
the password entered, and produce a scrambled result if the password was
incorrect.}

An extension to the project will be to make a mobile app that accomplishes most
of the same functionality so Java will be used as Android code is based on Java,
and requires very little adaption to work. The feature to add further files
will also be developed, allowing for multiple files to share one sound file of
similar length, increasing the data transfer rate of the technology.

The main contributions of this project will be:

\begin{enumerate}

\item A study of the current techniques available to convert data to sound,
and vice versa, including how much bandwidth these techniques use with
multiplexing potential in mind.

\item Developing and testing the code for converting bits into sound

\item Developing and testing the code for converting sound into bits

\item Developing and testing the code for intercepting network traffic on an
Android device

\item Evaluation of throughput and error rates

\item Writing the dissertation. \emph{\bf do i still have writing the
dissertation as one of these, as that's more of a ``something i'm going to do''
rather than a ``contribution to the world''}

\end{enumerate}

If time allows I will attempt to multiplex data using this technique. I
will then write an application layer program that uses my new physical and
datalink layers to offer data transfer, multiplexing and encryption on the
sounds generated.


%\section*{Reference}
%\begin{description}
%\item {[1]} \emph{Title}, Author, Technical Report, University of Where, pages
%\\
%({\tt address})
%\end{description}


\section*{Success Criteria}

The following should be achieved:

\begin{itemize}

\item A replacement physical and datalink layer for Android

\item Convert a bitstream into a sound representation, at the sender

\item Convert a sound into a bitstream, at the receiver

\item An evaluation of transfer rates, and link reliability

\end{itemize}

Extensions:

\begin{itemize}

\item Implement and evaluate multiplexing data in the sound

\item Modify the protocols to allow full duplex communication

\item Investigate ways to extend the protocols to allow three devices to
communicate simultaneously

\end{itemize}


\section*{Timetable and Milestones}

\subsection*{Background, 19 October 2012}

asd


\subsection*{Research 1, 2 November 2012}

Study SSTV standards. Investigate the mapping between pixels and frequencies.
Revise theory on multiplexing signals.


\subsection*{Research 2, 16 November 2012}

Study Java audio manipulation.

Milestone: Create basic test code for encoding/decoding small bit sequences as
distinct sounds.


\subsection*{Development 1, 30 November 2012}

Begin code for converting bit sequences into sounds.

Milestone: Can encode any bit sequence reliably, purpose of sequence is
irrelevant.


\subsection*{Development 2, 14 December 2012}

Begin code for converting sounds into bits.

Milestone: Can decode any bit sequence reliably.


\subsection*{Development 3, 11 January 2013}

Transfer code to Android device.

Milestone: Mobile app works with same results as PC version.


\subsection*{Development 4, 25 January 2013}

Fix bugs. Start extension, research ways to incorporate multiplexing or full
duplex mode.


\subsection*{Development 5, 8 February 2013}

Complete extension. Write simple automated test harness for evaluation.

Milestone: App works with extension code.


\subsection*{Evaluation 1, 22 February 2013}

Begin automated tests. Write Introduction, Preparation, start Implementation.

Milestones: Introduction and Preparation complete. Results from tests available

\subsection*{Evaluation 2, 8 March 2013}

Write Implementation. Graph useful data and any results of particular interest.

Milestone: Implementation complete.

\subsection*{Evaluation 3, 22 March 2013}

Evaluation and conclusion. Finish dissertation.

Milestone: Deliver complete draft dissertation to supervisor.

\subsection*{Complete, 19 April 2013}

Revise disseration and submit.

Milestone: Submitted dissertation.

\end{document}

